跳到主要内容
版本:1.11.x

v1.11.0

发布日期

2026 年 7 月 27 日

ROCK v1.11 扩展了 Sandbox 运行时后端,新增可配置的生命周期自动化和统一的 Job 工作流,并提升了 Sandbox 可观测性与 Admin 服务稳定性。本版本还支持异步 提交 Sandbox 镜像、OpenSandbox 持久会话,以及 Python SDK 的 Windows 文件系统操作。


重点更新

  • 可配置的生命周期自动化: 新增自动停止、归档和删除的持久化截止时间。 状态响应会返回 auto_stop_timeauto_archive_timeauto_delete_time;集群策略可以限制单个 Sandbox 配置的延迟上限, 并设置已归档 Sandbox 的保留时间 (#1264)。

  • OpenSandbox 后端: 新增 opensandbox Operator 后端,并通过官方 OpenSandbox SDK 执行命令、文件操作、状态查询、HTTP/WebSocket 服务代理和 持久 Shell 会话。会话映射保存在 Redis 中,可在多个 Admin Worker 之间保持一致 (#1203, #1233, #1262)。

  • 统一 Job 工作流: rock job run 支持执行单个任务、多个任务或整个数据集, 并新增持久化的 Run/Job 元数据、并发执行、断点恢复、基于 OSS 的 JobViewer 以及面向 Run 的查询命令 (#1235)。

  • 异步提交 Sandbox 镜像: Proxy 模式下的镜像 commit 和 push 改为通过 Rocklet 异步执行。Python 和 TypeScript SDK 可轮询提交进度,原有 Admin API 仍保持同步行为 (#1280)。

  • Windows 文件系统支持: Windows Sandbox 镜像会使用专用文件系统客户端, 支持所有者与权限处理、目录上传、二进制安全下载,以及适用于文件操作的 PowerShell 输出处理 (#1297)。


Sandbox 与 Admin

新功能

  • 新建 Sandbox 请求的默认磁盘配额调整为 50G;调用方可以显式传入 None 以继续使用集群默认值 (#1226)。

  • 通过直连、Proxy 和 OpenSandbox 状态查询返回 num_gpusaccelerator_type (#1286)。

  • 支持从 Nacos 动态更新 runtime.max_allowed_spec,未在 Nacos 中指定的字段 继续保留 YAML 配置值 (#1291)。

  • 为自动调度任务新增调度器健康状态、任务注册、Worker 缓存、任务执行、 执行耗时和失败情况等监控指标 (#1254)。

  • 为 Admin 及其他 ROCK 进程增加可配置的异常堆栈日志 (#1261)。

  • 新增主动 Ray Client 健康检查;当前 Client 会话关闭或无响应时, 通过串行化流程自动重新连接 (#1256)。

  • Admin 多 Worker 启动时改用各 Worker 独立的 SO_REUSEPORT 监听器 (#1267)。

问题修复

  • Sandbox 保持 pending 时保留已缓存的阶段信息,并避免在运行时尚未确认 Sandbox 存活时执行 pending → running (#1239, #1247)。

  • 在 Sandbox 启动响应中返回实际生效的磁盘配置 (#1258)。

  • 获取 Sandbox 状态时,允许部分 Docker inspect 操作失败 (#1282)。

  • Ray 提交失败后立即触发过期处理,清理调度超时,并在读取提交元数据失败时 终止 Actor (#1284, #1288)。

  • 重启已停止的 Sandbox 后刷新 start_time (#1289)。

  • 完善已删除 Sandbox 的处理:归档剩余日志、释放资源预留、支持 Ray 幂等删除, 并在状态响应中返回 delete_time (#1295)。


Kubernetes

新功能

  • 新增由 Nacos 驱动的 template_rules 模板选择机制。规则按照声明顺序执行, 可匹配镜像通配模式、镜像操作系统、GPU 数量范围和加速卡类型; extended_params 中显式指定的模板仍具有最高优先级 (#1274)。

  • 支持将加密后的镜像仓库凭据传递给 Kubernetes Sandbox 工作负载 (#1130)。


SDK 与 CLI

新功能

  • TypeScript SDK:新增 Sandbox.archive()、磁盘配置、类型化的生命周期状态、 状态转换历史,以及状态响应中的磁盘字段 (#1241)。

  • Python 和 TypeScript SDK:支持通过 VerifierConfig.env 配置 Verifier 环境变量 (#1220)。

问题修复

  • TypeScript SDK:修正 nohup 进程结束检测;长时间运行的 OSS 操作改用 nohup 模式;新增传输文件大小校验;修复首次安装 ossutil 失败的问题 (#1224)。

升级注意事项

  • 数据库结构: 生命周期自动化为 sandbox_record 表新增 auto_transition_stateauto_transition_time 字段以及 ix_sandbox_record_state_auto_transition 索引。启用自动生命周期转换前, 请先完成对应的数据库结构升级。

  • AES Key 配置: aes_encrypt_key 现在只从 ROCK 静态 YAML 配置的 顶层读取,不再从 Nacos 或 proxy_service.aes_encrypt_key 读取 (#1268)。

  • 生命周期配置: 升级前需要移除已废弃的集群配置 lifecycle.auto_transition.auto_archive_seconds。单个 Sandbox 的 auto_archive_seconds 用于控制归档时间;集群级 auto_delete_seconds 用作默认值、延迟上限和归档失败后的清理宽限期; auto_delete_archived_seconds 用于控制已归档 Sandbox 的保留时间 (#1264)。

  • Kubernetes 模板选择: 依赖 k8s.template_map 或隐式 GPU 模板名的 部署需要迁移到 Nacos template_rules。如果既未显式指定模板, 也没有匹配的规则,ROCK 将使用 default 模板 (#1274)。


完整变更对比: v1.10.0...master